bits/stdc++|limits.h|strncasecmp|文件重定向|vector初始化|const在函数名后面|
struct_class|内联函数与宏定义|vector的capacity
头文件集合
里面包含了常用头文件,可以在linux的该目录下查看此文件:/usr/include/x86_64-linux-gnu/c++/7/bits/1
#include <bits/stdc++.h>
limits.h
各种数据的范围,常用的有以下几个:1
2
3
4
5
6
7
8
9
10# define INT_MIN (-INT_MAX - 1)
# define INT_MAX 2147483647
/* Minimum and maximum values a `signed long int' can hold. */
# if __WORDSIZE == 64
# define LONG_MAX 9223372036854775807L
# else
# define LONG_MAX 2147483647L
# endif
# define LONG_MIN (-LONG_MAX - 1L)
strncasecmp
比较字符串时忽略大小写1
2
3
4相关函数:bcmp, memcmp, strcmp, strcoll, strncmp
表头文件:
函数定义:int strncasecmp(const char *s1, const char *s2, size_t n)
函数说明:strncasecmp()用来比较参数s1和s2字符串前n个字符,比较时会自动忽略大小写的差异。
文件重定向
1 | test <datain.txt>dataout.txt |
使用数组初始化vector
1 | int a[10]; |
使用”范围for”遍历二维数组
1 |
|
const在函数名后面
表示该函数是常成员函数.
要访问常量成员只能用常成员函数.
struct & class
C++ primer::”使用class和struct定义类的唯一区别就是默认的访问权限”;1
2
3
4
5
6
7
8
9
10
11
12
13struct node{
int a;
public:
void getA(){return a;}
void setA(int t){a=t;}
};
class node{
int a;
public:
void getA(){return a;}
void setA(int t){a=t;}
};
//第一个的a默认public,第二个的a默认private.
内联函数与宏定义的区别
两者都会将代码在相应位置展开,但是
宏定义会在所有地方将其进行替换,不进行类型检查等操作,只是死板的替换.
内联函数的本质还是函数,会有类型语法的检查,然后在调用的地方进行展开.并且如果函数太复杂,编译器就会将其当成普通函数处理.
vector的capacity
1 | 在使用push_back()不断地往vector中添加数据时,由于vector刚开始分配的内存并没有这么大,所以随着数据不断增多,可能会重新分配空间,然后把源数据拷贝过去.所以如果知道数据的个数,可以先使用reserve()函数分配足够空间. |
欢迎与我分享你的看法。
转载请注明出处:http://taowusheng.cn/